package net.cyndeline.itemEventFactory

import net.cyndeline.entitySystem.EntityRef
import net.cyndeline.entitySystem.Event
import net.cyndeline.xml.XMLKey

/**
 * Defines event behavior for a single action type
 * (steal, deal damage etc.).
 */
trait Action {
  
  /**
   * Calculates events and applies additional logic to the result, such
   * as target selection filtering. Use this method to retrieve item
   * action results.
   */
  def events(indata: ActionInput): ActionResult

}